1. Field of the Invention
The present invention relates to a storage device.
2. Description of the Related Art
Storage devices are also called (for example) disk array devices or the like, and are constructed by disposing numerous disk drives in the form of an array. For example, storage devices provide memory regions on the basis of a RAID (redundant array of independent inexpensive disks). Logical volumes (logical devices) which are logical memory regions are formed on the physical memory regions of each disk drive. For example, a host computer such as a server or the like can read and write desired data by issuing write commands or read commands that have a specified format to the storage device.
A plurality of servers can form a single aggregate, and can share one or a plurality of logical volumes of the storage device. Such a system in which a plurality of servers are mutually linked is called a cluster system or the like. For example, a failover system is known as one type of cluster system. A failover system is a system which is devised so that when one server stops, another server takes over the business application service of this stopped server (Japanese Patent Application Laid-Open No. 2000-215076). As a result, in a failover system, continuity of service is ensured for client computers.
Furthermore, disk devices are also known which are devised so that in cases where a plurality of servers share a disk device, important services can be preferentially processed by changing the queue execution order in accordance with the importance of the service (Japanese Patent Application Laid-Open No. 2001-222382).
In the conventional technique described in the former patent reference, information relating to the failover destination is respectively held in each node (server), so that the time required for the starting of failover can be shortened, and the failover time can be shortened. However, in this conventional technique, the time is shortened only on the server side; no consideration is given to shortening the time on the side of the storage device.
In the case of failover, for example, various types of processing are performed, such as processing that unmounts the file system from the server that has gone down, processing that mounts the unmounted file system in the failover destination server, processing that obtains a match in data between the failover source server and failover destination server, processing that restarts the application program in the failover destination server and the like.
In order to perform these types of processing, the failover destination server frequently accesses the storage device and performs the reading and writing of data during failover. Accordingly, even if an attempt is made to shorten the failover time on the server side, the failover time cannot be shortened unless the response characteristics of the storage device are improved. The reason for this is that the response characteristics of the storage device during failover constitute a bottleneck.
Especially in recent years, the memory capacity of storage devices has increased, and the processing performance has also improved. Since systems in which a high-performance, high-capacity storage device is used by a small number of servers are uneconomical, it is more common for a single storage device to be shared by a large number of servers.
In cases where a storage device is utilized by only a single failover cluster, this storage device can give close attention to the processing of input-output requests that accompany failover. However, under conditions in which a storage device is shared by numerous clusters or servers, the storage device must perform the processing of input-output requests from the other servers in addition to the processing of input-output requests that accompany failover. Accordingly, the response to input-output requests that accompany failover is slow, so that there is a possibility that the failover time will be prolonged.
In the latter patent reference, the order of queue execution is switched according to a preset priority for each memory access. However, this conventional technique does not give any consideration to a failover cluster system; furthermore, the priority of memory access is not dynamically altered in accordance with the conditions of the server.